home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-03 / qbttl30.zip / TITLE.BAS < prev    next >
BASIC Source File  |  1991-09-04  |  16KB  |  549 lines

  1. DECLARE SUB BoldFile (Msg$)
  2. DECLARE SUB BoldLtrs ()
  3. DECLARE SUB Center (Down%, Text$)
  4. DECLARE SUB DownSizeFile (DSMsg$)
  5. DECLARE SUB DownSizeLtrs ()
  6. DECLARE SUB Frame (Row%, LRow%, Col%, Wide%, Style%)
  7. DECLARE SUB HelpFile ()
  8. DECLARE SUB InpScreen ()
  9. DECLARE SUB Logon ()
  10. DECLARE SUB MediumFile (MediumMsg$)
  11. DECLARE SUB MediumLtrs ()
  12. DECLARE SUB OutLineFile (OLMsg$)
  13. DECLARE SUB OutLineLtrs ()
  14. DECLARE SUB OutputScreen ()
  15. DECLARE SUB ProgramChoice ()
  16. DECLARE SUB ShadowFile (ShadowMsg$)
  17. DECLARE SUB ShadowLtrs ()
  18. DECLARE SUB Spot (Down%, Over%)
  19. DECLARE SUB TopLine (Where%, Text$)
  20. DECLARE SUB WhatNow ()
  21. DECLARE FUNCTION GetKey% ()
  22. DIM SHARED BoldData$, Alpha$(80, 8)
  23. DIM SHARED MediumData$, Delta$(80, 6)
  24. DIM SHARED OutLineData$, Queen$(40, 4)
  25. DIM SHARED ShadowData$, Sugar$(30, 7)
  26. DIM SHARED DSData$, Charlie$(40, 4)
  27. CONST PgUp = -&H49, PgDn = -&H51, Esc = 27, CR = 13, ShadColr = 0
  28. CONST Wait$ = "P L E A S E    W A I T"
  29. CONST Load$ = "L O A D I N G   F O N T S"
  30. CONST NotFound$ = "Fonts Not Found - Cannot be Loaded"
  31. COMMON SHARED x%, Size%, FileName$, Help$
  32. BoldData$ = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz 0123456789,.:$@*#!-+=%?;'[]"
  33. MediumData$ = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz 0123456789.,!?@';:$#%-*=+[]"
  34. OutLineData$ = "ABCDEFGHIJKLMNOPQRSTUVWXYZ 1234567890"
  35. ShadowData$ = "ABCDEFGHIJKLMNOPQRSTUVWXYZ "
  36. DSData$ = "ABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789"
  37. Logon
  38. ON KEY(10) GOSUB EndProgram
  39. KEY(10) ON
  40. ON ERROR GOTO ErrorProc
  41.  
  42. Menu:
  43. CLOSE
  44. DO
  45. ProgramChoice
  46.    DO
  47.       SELECT CASE GetKey%
  48.          CASE ASC("B")
  49.             BoldLtrs
  50.             EXIT DO
  51.          CASE ASC("D")
  52.             DownSizeLtrs
  53.             EXIT DO
  54.          CASE ASC("H")
  55.             HelpFile
  56.             EXIT DO
  57.          CASE ASC("M")
  58.             MediumLtrs
  59.             EXIT DO
  60.          CASE ASC("O")
  61.             OutLineLtrs
  62.             EXIT DO
  63.          CASE ASC("S")
  64.             ShadowLtrs
  65.             EXIT DO
  66.          CASE ASC("X")
  67.             GOSUB EndProgram
  68.          CASE ELSE
  69.       END SELECT
  70.    LOOP
  71. LOOP
  72.  
  73. ErrorProc:
  74. COLOR 0, 3: CLS : Frame 3, 16, 4, 88, 3
  75. SELECT CASE ERR
  76.    CASE 5, 13
  77.       Spot 2, 18: PRINT "* * * P R O G R A M M I N G   E R R O R * * *"
  78.       Spot 2, 18: PRINT "Illegal Function Call or Type Mismatch"
  79.    CASE 25, 68, 71
  80.       Spot 2, 18: PRINT "* * * D E V I C E   E R R O R * * *"
  81.       Spot 2, 18: PRINT "PRINTER or DISK DRIVE Not Ready/Available"
  82.    CASE 52, 63, 64
  83.       Spot 2, 18: PRINT "* * *F I L E  or  R E C O R D   E R R O R * * *"
  84.       Spot 2, 18: PRINT "Bad Record Number (-0?-), OR Bad File Name"
  85.       Spot 1, 18: PRINT "Create records and files if necessary"
  86.    CASE ELSE:
  87. END SELECT
  88. Spot 2, 18: PRINT "* * ERROR NUMBER * * ╔═══» ";
  89. COLOR 15, 1: PRINT ERR: COLOR 0, 3
  90. Spot 2, 18: LINE INPUT "Press <ENTER> To Return to MENU....."; anyk$
  91. RESUME Menu
  92.  
  93. EndProgram:
  94.    COLOR 0, 3: CLS : SYSTEM
  95.  
  96. SUB BoldFile (Msg$)
  97. BoldTxt$ = ""
  98. L% = LEN(Msg$)
  99. FOR q% = 1 TO 8
  100.       FOR K% = 1 TO L%
  101.          r% = INSTR(BoldData$, (MID$(Msg$, K%, 1)))
  102.          IF r% = 0 THEN r% = 53
  103.          BoldTxt$ = BoldTxt$ + Alpha$(r%, q%)
  104.       NEXT K%
  105.    place% = INT(82 - LEN(BoldTxt$)) / 2
  106.    PRINT #1, "x% = x% + 1: LOCATE x%,"; STR$(place%); " : PRINT "; CHR$(34); BoldTxt$; CHR$(34)
  107.    BoldTxt$ = ""
  108. NEXT q%
  109. END SUB
  110.  
  111. SUB BoldLtrs
  112. DO UNTIL Alpha$(1, 1) <> ""
  113. COLOR 0, 3, 8: CLS : Frame 3, 12, 10, 88, 2
  114. Center 2, Wait$
  115. COLOR 20, 3: Center 2, Load$
  116. CLOSE : OPEN "bold.fnt" FOR RANDOM AS 1
  117. CLOSE : OPEN "bold.fnt" FOR INPUT AS 1
  118. Size = LOF(1)
  119. IF Size < 10 THEN
  120.    COLOR 31, 4
  121.    Center 4, NotFound$
  122.    SLEEP (2)
  123.    EXIT SUB
  124. END IF
  125. FOR Beta% = 1 TO 80
  126.    FOR r% = 1 TO 8
  127.       INPUT #1, Alpha$(Beta%, r%)
  128.    NEXT r%
  129. NEXT Beta%
  130. LOOP
  131. CLOSE
  132. TopLine 1, "USING LETTERS, NUMBERS, AND SYMBOLS  «»  LIMIT OF [-9-] CHARACTERS"
  133. InpScreen
  134. x% = 8: Spot 7, 40: LINE INPUT Title$
  135. IF LEN(Title$) = 0 THEN EXIT SUB
  136. IF LEN(Title$) > 9 THEN Title$ = LEFT$(Title$, 9)
  137. Spot 2, 6
  138. LINE INPUT ; "Save Title on Disk as : { File Name + .BAS extension } "; FileName$
  139. Center 2, "Saving Title in Disk File " + CHR$(34) + FileName$ + CHR$(34)
  140. IF FileName$ = "" THEN EXIT SUB
  141. OPEN FileName$ FOR OUTPUT AS 1
  142. BoldFile Title$
  143. WhatNow
  144. OutputScreen
  145. END SUB
  146.  
  147. SUB Center (Down%, Text$)
  148. x% = x% + Down%
  149. p% = INT((82 - LEN(Text$)) / 2)
  150. LOCATE x%, p%: PRINT Text$;
  151. END SUB
  152.  
  153. SUB DownSizeFile (DSMsg$)
  154. DownTxt$ = ""
  155. L% = LEN(DSMsg$)
  156. FOR Easy% = 1 TO 3
  157.       FOR K% = 1 TO L%
  158.          rr% = INSTR(DSData$, (MID$(DSMsg$, K%, 1)))
  159.          DownTxt$ = DownTxt$ + Charlie$(rr%, Easy%)
  160.       NEXT K%
  161.    place% = INT(82 - LEN(DownTxt$)) / 2
  162.    PRINT #1, "x% = x% + 1: LOCATE x%,"; STR$(place%); " : PRINT "; CHR$(34); DownTxt$; CHR$(34)
  163. DownTxt$ = ""
  164. NEXT Easy%
  165. END SUB
  166.  
  167. SUB DownSizeLtrs
  168. DO UNTIL Charlie$(1, 1) <> ""
  169. COLOR 0, 3, 8: CLS : Frame 3, 12, 10, 88, 2
  170. Center 2, Wait$
  171. COLOR 20, 3: Center 2, "L O A D I N G    F O N T S"
  172. CLOSE : OPEN "downsize.fnt" FOR RANDOM AS 1
  173. CLOSE : OPEN "downsize.fnt" FOR INPUT AS 1
  174. Size = LOF(1)
  175. IF Size < 10 THEN
  176.    COLOR 31, 4
  177.    Center 4, NotFound$
  178.    SLEEP (2)
  179.    EXIT SUB
  180. END IF
  181. FOR Easy% = 1 TO 37
  182.    FOR rr% = 1 TO 3
  183.       INPUT #1, Charlie$(Easy%, rr%)
  184.    NEXT rr%
  185. NEXT Easy%
  186. LOOP
  187. CLOSE
  188. TopLine 1, "USING DOWNSIZE CHARACTERS «» LIMIT OF [-18-] LETTERS AND NUMBERS"
  189. InpScreen
  190. x% = 8: Spot 7, 40: LINE INPUT Down$
  191. Down$ = UCASE$(Down$)
  192. IF LEN(Down$) = 0 THEN EXIT SUB
  193. IF LEN(Down$) > 18 THEN Down$ = LEFT$(Down$, 18)
  194. Spot 2, 6
  195. LINE INPUT ; "Save Title on Disk as : { File Name + .BAS extension } "; FileName$
  196. Center 2, "Saving Title in Disk File " + CHR$(34) + FileName$ + CHR$(34)
  197. IF FileName$ = "" THEN EXIT SUB
  198. OPEN FileName$ FOR OUTPUT AS 1
  199. DownSizeFile Down$
  200. WhatNow
  201. OutputScreen
  202. END SUB
  203.  
  204. SUB Frame (Row%, LRow%, Col%, Wide%, Style%)
  205. ss% = 80 - (Col% * 2)
  206. IF Wide% > 80 THEN Wide% = ss%
  207. Rw% = Row%: LRw% = LRow%
  208. SELECT CASE Style%
  209.    CASE 1, 11
  210.       LOCATE Row%, Col%: PRINT CHR$(218); STRING$(Wide%, 196); CHR$(191);
  211.       Side% = 179: GOSUB SideLines:
  212.       LOCATE Row%, Col%: PRINT CHR$(192); STRING$(Wide%, 196); CHR$(217);
  213.    CASE 2, 22
  214.       LOCATE Row%, Col%: PRINT CHR$(201); STRING$(Wide%, 205); CHR$(187);
  215.       Side% = 186: GOSUB SideLines
  216.       LOCATE Row%, Col%: PRINT CHR$(200); STRING$(Wide%, 205); CHR$(188);
  217.    CASE 3, 33
  218.       LOCATE Row%, Col%: PRINT CHR$(219); STRING$(Wide%, 223); CHR$(219);
  219.       Side% = 219: GOSUB SideLines
  220.       LOCATE Row%, Col%: PRINT CHR$(219); STRING$(Wide%, 220); CHR$(219);
  221.    CASE ELSE
  222. END SELECT
  223. IF Style% > 10 THEN
  224.    COLOR ShadColr
  225.    FOR Rw% = Rw% + 1 TO LRw% + 1
  226.       LOCATE Rw%, Col% + Wide% + 2: PRINT STRING$(2, 219);
  227.    NEXT
  228.    LOCATE Rw%, Col% + 2: PRINT STRING$(Wide% + 2, 219);
  229. END IF
  230. x% = 3
  231. EXIT SUB
  232.  
  233. SideLines:
  234.    FOR Row% = Row% + 1 TO LRow%: LOCATE Row%, Col%
  235.    PRINT CHR$(Side%); SPACE$(Wide%); CHR$(Side%): NEXT
  236. RETURN
  237. END SUB
  238.  
  239. FUNCTION GetKey%
  240.    DO
  241.       ch$ = INKEY$
  242.    LOOP UNTIL LEN(ch$) > 0
  243.    IF LEN(ch$) = 1 THEN
  244.       GetKey% = ASC(UCASE$(ch$))
  245.    ELSE
  246.       GetKey% = -1 * ASC(RIGHT$(ch$, 1))
  247.    END IF
  248. END FUNCTION
  249.  
  250. SUB HelpFile
  251. COLOR 0, 3, 0: CLS
  252. DO WHILE Help$ = ""
  253. Frame 3, 4, 12, 88, 1: Center 1, "W O R K I N G"
  254. HelpText = FREEFILE
  255. OPEN "title.hlp" FOR BINARY AS HelpText
  256. Size% = LOF(HelpText)
  257. IF Size% < 10 THEN
  258.    LOCATE 10, 30: PRINT "Help File Not Found"
  259.    SLEEP (2)
  260.    EXIT SUB
  261. END IF
  262. Help$ = STRING$(Size%, 32)
  263. GET HelpText, , Help$
  264. CLOSE HelpText
  265. LOOP
  266.  
  267. m% = 1
  268.    DO
  269.       CLS
  270.       IF m% <= 0 THEN m% = 1
  271.       FOR x% = 1 TO 25: LOCATE x%, 1: PRINT MID$(Help$, m%, 80);
  272.          m% = m% + 80
  273.       NEXT
  274.       DO
  275.          SELECT CASE GetKey%
  276.             CASE PgDn
  277.                EXIT DO
  278.             CASE PgUp
  279.                m% = m% - 4000
  280.                EXIT DO
  281.             CASE Esc
  282.                EXIT SUB
  283.             CASE ELSE
  284.          END SELECT
  285.       LOOP
  286.       IF m% >= Size% THEN m% = Size% - 1999
  287.    LOOP
  288. END SUB
  289.  
  290. SUB InpScreen
  291. COLOR 15, 1, 8: x% = 3
  292. Spot 1, 6: PRINT "╔═══╗ ╦═══╗ ╔═══╗ ╔═══╗ ╔═╦═╗ ╔═══╗    ╔═╦═╗  ╒╦╕  ╔═╦═╗ ╦     ╔═══╗"
  293. Spot 1, 6: PRINT "║     ╠══╦╝ ╠═╡   ╠═══╣   ║   ╠═╡        ║     ║     ║   ║     ╠═╡"
  294. Spot 1, 6: PRINT "╚═══╝ ╝  ╚═ ╚═══╝ ╝   ╚   ╩   ╚═══╝      ╩    ╘╩╛    ╩   ╚═══╝ ╚═══╝"
  295. COLOR 0, 3: Frame 8, 22, 1, 88, 2
  296. Center 6, "For Some Fonts Only Characters A - Z, and Spaces Can Be Converted"
  297. Center 2, "For Bold and Medium, Alpha Numeric Characters and Symbols can be Converted."
  298. Center 2, "See Top of Screen for [Character Limit] - Also See Help File."
  299. Spot 2, 8: PRINT "[Enter Characters for TITLE:]"
  300. LOCATE x%, 40: COLOR 1, 7: PRINT STRING$(18, 176)
  301. COLOR 0, 3
  302. END SUB
  303.  
  304. SUB Logon
  305. TopLine 25, " Version 2.1 "
  306. COLOR 4, 7: Frame 4, 18, 10, 88, 33
  307. p% = 21: COLOR 0
  308. Spot 3, p%: PRINT "▒▒▒▒▒▒▄  ▒▄  ▒▒▒▒▒▒▄  ▒▒▄      ▒▒▒▒▒▒▄"
  309. Spot 1, p%: PRINT " ▀▒▒█▀▀  ▒█   ▀▒▒█▀▀  ▒▒█      ▒▒█▀▀▀▀"
  310. Spot 1, p%: PRINT "  ▒▒█    ▒█    ▒▒█    ▒▒█      ▒▒▒▒▒▄"
  311. Spot 1, p%: PRINT "  ▒▒█    ▒█    ▒▒█    ▒▒█      ▒▒█▀▀▀"
  312. Spot 1, p%: PRINT "  ▒▒█    ▒█    ▒▒█    ▒▒▒▒▒▒▄  ▒▒▒▒▒▒▄"
  313. Spot 1, p%: PRINT "   ▀▀    ▀▀     ▀▀     ▀▀▀▀▀▀   ▀▀▀▀▀▀"
  314. p% = 16: COLOR 1
  315. Spot 2, p%: PRINT "▐████▄  █   █  ▐███▌ ▐█▌    ▐████▄ ▐█▀▀██ ▐█████"
  316. Spot 1, p%: PRINT " █   █  █   █    █    █      █   █  █      █   █"
  317. Spot 1, p%: PRINT " ████▌  █   █    █    █      █   █  ███    █▄▄▄█"
  318. Spot 1, p%: PRINT " █   █  █   █    █    █   ▄  █   █  █      █▀█▄ "
  319. Spot 1, p%: PRINT "▐████▀  ▀███▀  ▐███▌  █████ ▐████▀ ▐█▄▄██ ▐█  ▀█"
  320. COLOR 15, 1: Center 5, "<Press Any Key to Continue>"
  321. SLEEP (5)
  322. END SUB
  323.  
  324. SUB MediumFile (MediumMsg$)
  325. MediumTxt$ = ""
  326. L% = LEN(MediumMsg$)
  327. FOR Easy% = 1 TO 6
  328.       FOR K% = 1 TO L%
  329.          rr% = INSTR(MediumData$, (MID$(MediumMsg$, K%, 1)))
  330.          MediumTxt$ = MediumTxt$ + Delta$(rr%, Easy%)
  331.       NEXT K%
  332.    place% = INT(82 - LEN(MediumTxt$)) / 2
  333.    PRINT #1, "x% = x% + 1: LOCATE x%,"; STR$(place%); " : PRINT "; CHR$(34); MediumTxt$; CHR$(34)
  334. MediumTxt$ = ""
  335. NEXT Easy%
  336. END SUB
  337.  
  338. SUB MediumLtrs
  339. DO UNTIL Delta$(1, 1) <> ""
  340. COLOR 0, 3, 8: CLS : Frame 3, 12, 10, 88, 2
  341. Center 2, Wait$
  342. COLOR 20, 3: Center 2, "L O A D I N G    F O N T S"
  343. CLOSE : OPEN "medium.fnt" FOR RANDOM AS 1
  344. CLOSE : OPEN "medium.fnt" FOR INPUT AS 1
  345. Size = LOF(1)
  346. IF Size < 10 THEN
  347.    COLOR 31, 4
  348.    Center 4, NotFound$
  349.    SLEEP (2)
  350.    EXIT SUB
  351. END IF
  352. FOR Easy% = 1 TO 80
  353.    FOR rr% = 1 TO 6
  354.       INPUT #1, Delta$(Easy%, rr%)
  355.    NEXT rr%
  356. NEXT Easy%
  357. LOOP
  358. CLOSE
  359. TopLine 1, "USING MEDIUM CHARACTERS «» LIMIT OF [-11-] LETTERS, NUMBERS, SYMBOLS"
  360. InpScreen
  361. x% = 8: Spot 7, 40: LINE INPUT Medium$
  362. IF LEN(Medium$) = 0 THEN EXIT SUB
  363. IF LEN(Medium$) > 11 THEN Medium$ = LEFT$(Medium$, 11)
  364. Spot 2, 6
  365. LINE INPUT ; "Save Title on Disk as : { File Name + .BAS extension } "; FileName$
  366. Center 2, "Saving Title in Disk File " + CHR$(34) + FileName$ + CHR$(34)
  367. IF FileName$ = "" THEN EXIT SUB
  368. OPEN FileName$ FOR OUTPUT AS 1
  369. MediumFile Medium$
  370. WhatNow
  371. OutputScreen
  372. END SUB
  373.  
  374. SUB OutLineFile (OLMsg$)
  375. OutTxt$ = ""
  376. L% = LEN(OLMsg$)
  377. FOR Easy% = 1 TO 4
  378.       FOR K% = 1 TO L%
  379.          rr% = INSTR(OutLineData$, (MID$(OLMsg$, K%, 1)))
  380.          OutTxt$ = OutTxt$ + Queen$(rr%, Easy%)
  381.       NEXT K%
  382.    place% = INT(82 - LEN(OutTxt$)) / 2
  383.    PRINT #1, "x% = x% + 1: LOCATE x%,"; STR$(place%); " : PRINT "; CHR$(34); OutTxt$; CHR$(34)
  384. OutTxt$ = ""
  385. NEXT Easy%
  386. END SUB
  387.  
  388. SUB OutLineLtrs
  389. DO UNTIL Queen$(1, 1) <> ""
  390. COLOR 0, 3, 8: CLS : Frame 3, 12, 10, 88, 2
  391. Center 2, Wait$
  392. COLOR 20, 3: Center 2, "L O A D I N G    F O N T S"
  393. CLOSE : OPEN "outline.fnt" FOR RANDOM AS 1
  394. CLOSE : OPEN "outline.fnt" FOR INPUT AS 1
  395. Size = LOF(1)
  396. IF Size < 10 THEN
  397.    COLOR 31, 4
  398.    Center 4, NotFound$
  399.    SLEEP (2)
  400.    EXIT SUB
  401. END IF
  402. FOR Easy% = 1 TO 37
  403.    FOR rr% = 1 TO 4
  404.       INPUT #1, Queen$(Easy%, rr%)
  405.    NEXT rr%
  406. NEXT Easy%
  407. LOOP
  408. CLOSE
  409. TopLine 1, "USING OUTLINE LETTERS AND NUMBERS  «»   LIMIT OF [-8-] CHARACTERS"
  410. InpScreen
  411. x% = 8: Spot 7, 40: LINE INPUT OutLine$
  412. OutLine$ = UCASE$(OutLine$)
  413. IF LEN(OutLine$) = 0 THEN EXIT SUB
  414. IF LEN(OutLine$) > 8 THEN OutLine$ = LEFT$(OutLine$, 8)
  415. Spot 2, 6
  416. LINE INPUT ; "Save Title on Disk as : { File Name + .BAS extension } "; FileName$
  417. Center 2, "Saving Title in Disk File " + CHR$(34) + FileName$ + CHR$(34)
  418. IF FileName$ = "" THEN EXIT SUB
  419. OPEN FileName$ FOR OUTPUT AS 1
  420. OutLineFile OutLine$
  421. WhatNow
  422. OutputScreen
  423. END SUB
  424.  
  425. SUB OutputScreen
  426. COLOR 0, 3: Frame 12, 22, 2, 88, 2
  427. Center 11, "Data for QuickBasic Print Statements to center and print the above"
  428. Center 1, "Caption is stored on disk in File named [ " + CHR$(34) + FileName$ + CHR$(34) + " ]"
  429. Center 2, "««« <> »»»"
  430. Center 2, "You can now load your Main Module and merge this ASCII file into it."
  431. Center 2, "««« <> »»»"
  432. Center 2, "╣ Press <enter> to continue ╠"
  433. LINE INPUT anyk$
  434. END SUB
  435.  
  436. SUB ProgramChoice
  437. COLOR 1, 1, 4: CLS : COLOR 1, 7: Frame 1, 2, 1, 88, 2
  438. x% = 1: Center 1, "YE OLE' TITLE BUILDING PROGRAM"
  439. COLOR 4, 7: Frame 12, 22, 6, 88, 33
  440. p% = 12: COLOR 14, 1
  441. Spot 2, p%: PRINT "█████ ▄                 █▄ ▄█"
  442. Spot 1, p%: PRINT "  █   █                 ██▄██"
  443. Spot 1, p%: PRINT "  █   █▄▄▄▄ ▄▄▄▄▄       █ █ █ ▄▄▄▄▄ █▄▄▄▄ ▄   ▄"
  444. Spot 1, p%: PRINT "  █   █   █ █▄▄▄█       █   █ █▄▄▄█ █   █ █   █"
  445. Spot 1, p%: PRINT "  █   █   █ █▄▄▄▄       █   █ █▄▄▄▄ █   █ █▄▄▄█"
  446. p% = 8: COLOR 0, 7: Spot 4, p%
  447. PRINT "<B>old Characters [U&L] [8 x 8]"; TAB(43); "<S>hadow Letters [CAPS] [7x9]"
  448. Spot 2, p%
  449. PRINT "<O>utline [CAPS & Numbers] [4x8]"; TAB(43); "<M>edium Charct [U&L] [6 x 6]"
  450. Spot 2, p%
  451. PRINT "<D>ownSize Letters  [CAPS] [3x4]"; TAB(43); "<H>elp - How to Build Title"
  452. Spot 2, 33: PRINT "e<X>it The Program"
  453. x% = 11: p% = 9: COLOR 14
  454. Spot 2, p%: PRINT "B": LOCATE x%, 44: PRINT "S"
  455. Spot 2, p%: PRINT "O": LOCATE x%, 44: PRINT "M"
  456. Spot 2, p%: PRINT "D": LOCATE x%, 44: PRINT "H"
  457. Spot 2, 35: PRINT "X"
  458. COLOR 1: Frame 20, 21, 14, 88, 1
  459. Center 18, "SELECT  B - S - O - M - D - H - X"
  460. END SUB
  461.  
  462. SUB ShadowFile (ShadowMsg$)
  463. ShadowTxt$ = ""
  464. L% = LEN(ShadowMsg$)
  465. FOR Easy% = 1 TO 7
  466.       FOR K% = 1 TO L%
  467.          rr% = INSTR(ShadowData$, (MID$(ShadowMsg$, K%, 1)))
  468.          ShadowTxt$ = ShadowTxt$ + Sugar$(rr%, Easy%)
  469.       NEXT K%
  470.    place% = INT(82 - LEN(ShadowTxt$)) / 2
  471.    PRINT #1, "x% = x% + 1: LOCATE x%,"; STR$(place%); " : PRINT "; CHR$(34); ShadowTxt$; CHR$(34)
  472. ShadowTxt$ = ""
  473. NEXT Easy%
  474. END SUB
  475.  
  476. SUB ShadowLtrs
  477. DO UNTIL Sugar$(1, 1) <> ""
  478. COLOR 0, 3, 8: CLS : Frame 3, 12, 10, 88, 2
  479. Center 2, Wait$
  480. COLOR 20, 3: Center 2, Load$
  481. CLOSE : OPEN "shadow.fnt" FOR RANDOM AS 1
  482. CLOSE : OPEN "shadow.fnt" FOR INPUT AS 1
  483. Size = LOF(1)
  484. IF Size < 10 THEN
  485.    COLOR 31, 4
  486.    Center 4, NotFound$
  487.    SLEEP (2)
  488.    EXIT SUB
  489. END IF
  490. FOR Easy% = 1 TO 27
  491.    FOR rr% = 1 TO 7
  492.       INPUT #1, Sugar$(Easy%, rr%)
  493.    NEXT rr%
  494. NEXT Easy%
  495. LOOP
  496. CLOSE
  497. TopLine 1, "USING SHADOW PRINT   «»   LIMIT OF [-8-] LETTERS"
  498. InpScreen
  499. x% = 8: Spot 7, 40: LINE INPUT Shadow$
  500. Shadow$ = UCASE$(Shadow$)
  501. IF LEN(Shadow$) = 0 THEN EXIT SUB
  502. IF LEN(Shadow$) > 8 THEN Shadow$ = LEFT$(Shadow$, 8)
  503. Spot 2, 6
  504. LINE INPUT ; "Save Title on Disk as : { File Name + .BAS extension } "; FileName$
  505. Center 2, "Saving Title in Disk File " + CHR$(34) + FileName$ + CHR$(34)
  506. IF FileName$ = "" THEN EXIT SUB
  507. OPEN FileName$ FOR OUTPUT AS 1
  508. ShadowFile Shadow$
  509. WhatNow
  510. OutputScreen
  511. END SUB
  512.  
  513. SUB Spot (Down%, Over%)
  514. x% = x% + Down%: LOCATE x%, Over%
  515. END SUB
  516.  
  517. SUB TopLine (Where%, Text$)
  518. COLOR 1, 1, 8: CLS
  519. SELECT CASE Where%
  520.    CASE 1
  521.       ch% = 196
  522.       Text$ = "┤ " + Text$ + " ├"
  523.       COLOR 14, 4
  524.    CASE 25
  525.       ch% = 240
  526.       Text$ = "█▄▄ " + Text$ + " ▄▄█"
  527.       COLOR 15, 2
  528.    CASE ELSE
  529. END SELECT
  530. p% = INT(80 - LEN(Text$)) / 2
  531. LOCATE Where%, 1: PRINT STRING$(80, ch%);
  532. LOCATE Where%, p%: PRINT Text$;
  533. COLOR 0, 3
  534. END SUB
  535.  
  536. SUB WhatNow
  537. Center 2, "Now we'll read file and display on screen."
  538. Center 2, "╣ Press <enter> to continue ╠"
  539. LINE INPUT anyk$
  540. CLOSE : OPEN FileName$ FOR INPUT AS 1
  541. COLOR 2, 0, 4: CLS : x% = 1
  542. WHILE NOT EOF(1)
  543.    LINE INPUT #1, Display$
  544.    Center 1, MID$(Display$, 37, LEN(Display$) - 37)
  545. WEND
  546. CLOSE #1
  547. END SUB
  548.  
  549.